package com.bh.shipment.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.bh.common.annotation.Dict;
import com.bh.common.annotation.Excel;
import com.bh.common.core.domain.BhtmsBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 运单管理对象 jc_shipment
 *
 * @author slx
 * @date 2023-04-22
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class JcShipmentListVo extends BhtmsBaseEntity{

    /**
     * 承运商合同是否超期
     */
    @Excel(name = "承运商合同是否超期")
    private Integer carriageIsExceed;

    /**
     * 承运商类型
     */
    @Excel(name = "承运商类型")
    private Integer carrierType;

    /**
     * 实际到达时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际到达时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date factArriveTime;

    /**
     * 实际发运时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际发运时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date factLeaverTime;

    /**
     * 是否有异常
     */
    @Excel(name = "是否有异常")
    private Integer isAbnormal;

    /**
     * 外部车牌号
     */
    @Excel(name = "外部车牌号")
    private String license;

    /**
     * 运作模式  -- 自营车辆    ----干线外包   ----外包中转   ---
     */
    @Excel(name = "运作模式")
    private Integer operationPattern;

    /**
     * 订单号
     */
    @Excel(name = "订单号")
    private String orderCode;

    /**
     * 外部司机名称
     */
    @Excel(name = "外部司机名称")
    private String outDriver;

    /**
     * 要求发运日期
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
    @Excel(name = "要求发运日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planLeaveTime;

    /**
     * 客户发运单号
     */
    @Excel(name = "客户发运单号")
    private String relateBill1;

    /**
     * 要求到车日期
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
    @Excel(name = "要求到车日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date requireArriveTime;

    /**
     * 运单日期
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "运单日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date time;

    /**
     * 件数
     */
    @Excel(name = "件数")
    public Integer number;

    /**
     * 货值
     */
    @Excel(name = "货值")
    private BigDecimal value;

    /**
     * 体积
     */
    @Excel(name = "体积")
    private BigDecimal volume;

    /**
     * 重量
     */
    @Excel(name = "重量")
    private BigDecimal weight;

    /**
     * 承运商ID
     */
    @Dict(dictTable = "jc_carrier", dictLabel = "name", dictValue = "id")
    @Excel(name = "承运商ID")
    private Long jcCarrierId;

    /**
     * 司机ID
     */
    @Excel(name = "司机ID")
    private Long jcDriverId;

    /**
     * 组织机构ID
     */
    @Dict(dictTable = "jc_sys_organization", dictLabel = "name", dictValue = "id")
    @Excel(name = "组织机构ID")
    private Long jcOrganizationId;

    /**
     * 车型ID
     */
    @Dict(dictTable = "jc_vehicle", dictLabel = "code", dictValue = "id")
    @Excel(name = "车型ID")
    private Long jcVehicleId;

    /**
     * 车头ID
     */
    @Excel(name = "车头ID")
    private Long jcVehicleHeadId;

    /**
     * 实际操作时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date actionTime;

    /**
     * 起运站ID
     */
    @Dict(dictTable = "jc_sys_organization", dictLabel = "name", dictValue = "id")
    @Excel(name = "起运站ID")
    private Long jcFromOrganizationId;

    /**
     * 当前站ID
     */
    @Dict(dictTable = "jc_sys_organization", dictLabel = "name", dictValue = "id")
    @Excel(name = "当前站ID")
    private Long jcNowOrganizationId;

    /**
     * 下一站ID
     */
    @Dict(dictTable = "jc_sys_organization", dictLabel = "name", dictValue = "id")
    @Excel(name = "下一站ID")
    private Long jcNextOrganizationId;

    /**
     * 目的站ID
     */
    @Dict(dictTable = "jc_sys_organization", dictLabel = "name", dictValue = "id")
    @Excel(name = "目的站ID")
    private Long jcToOrganizationId;

    /**
     * 经由站组织机构IDS
     */
    @Dict(dictTable = "jc_sys_organization", dictLabel = "name", dictValue = "id", dictAlias = "orgnameList")
    @Excel(name = "经由站组织机构IDS")
    private String orgIds;

    /**
     * 途径站显示
     */
    @Excel(name = "途径站显示")
    private String orgnameList;

    /**
     * 外部司机电话
     */
    @Excel(name = "外部司机电话")
    private String outPhone;

    /**
     * 是否收入成本确认
     */
    @Excel(name = "是否收入成本确认")
    private Integer isConfirm;

    /**
     * 装车照片
     */
    @TableField(exist = false)
    private String imgUrls;


    /**
     * 总费用
     */
    @TableField(exist = false)
    private BigDecimal totalFee;
}
